.*PROGRAM dVERSION 2.0
.*PROGRAMMER D. ALLEN
.*CREATED SEPT 1, 1987
.*UPDATED MAR 06, 1993
.*COPYRIGHT (C) 1987
Overview:  dVERSION is a dBASE text translator.  It was designed
to give the dBASE programmer a facility to maintain dBASE code.

Essentially, dVERSION will conditionally translate dBASE code.
This allows the programmer to have many versions of an
application in one set of source code.  In addition, dVERSION
offers an INCLUDE facility that can insert code from specified
source files.

For more information on any dVERSION command, type HELP TOPICS
and press <ENTER>.

.L 1 TOPICS
The following topics are available for dVERSION:

     TOPICS              COMMANDS            BLK_CMD
     CLEAR_CMD           CLS_CMD             HELP_CMD
     HLP_CMD             IN_CMD              LIST_CMD
     OUT_CMD             PAR_CMD             PARMS_CMD
     PMT_CMD             QUIT_CMD            REM_CMD
     REMOVE_CMD          RUN_CMD             SUF_CMD
     SYSTEM_CMD          ERRORS              SAMPLE

.L 1 COMMANDS
The following is a summary of all dVERSION commands:

BLK ON               - leading blanks are to be removed
                       from output code
CLEAR                - reset all commands to their defaults
CLS                  - clear screen and home cursor
HELP topic           - displays topic from the help file
HLP filespec         - filespec is the dVERSION help file
IN filespec          - filespec is the dVERSION input file
LIST LPT2            - send all source code to printer LPT2
OUT filespec         - filespec is the dVERSION output file
PAR word             - specifies word as a conditional parameter
PARMS filespec       - filespec is the dVERSION parameter file
PMT .                - sets the dVERSION prompt character to "."
QUIT                 - exit dVERSION and enter DOS
REM ON               - remarks are to be removed from output code
REMOVE ON            - remove all trace of specified parameters
RUN                  - starts program processing
SUF #                - sets the dVERSION reserved word suffix to "#"
SYSTEM               - displays the current directory

.L 1 BLK_CMD


SYNTAX:  BLK [flag]

PARAMETERS:
flag           -    optional, ON or OFF

DESCRIPTION:  Sets the option to remove leading blanks from
output code.  If no flag is specified, the current status is
displayed.  The default is OFF.


.L 1 CLEAR_CMD


SYNTAX:  CLEAR [command]

PARAMETERS:
command        -    any dVERSION command

DESCRIPTION:  Sets the specified dVERSION command to it's
default value.  If command is not specified, all commands are
reset to their defaults.


.L 1 CLS_CMD


SYNTAX:  CLS

PARAMETERS:  none

DESCRIPTION:  This command clears the screen and homes the cursor.


.L 1 HELP_CMD


SYNTAX:  HELP [topic] [topic] ...
         or
         ? [topic] [topic] ...

PARAMETERS:
topic          -    any valid help topic

DESCRIPTION:  The help facility provides the user a means of
displaying information on certain topics.  The HELP command
will open a help file and will search for a specified topic. 
The ? is a HELP extension that will not reopen the help file,
but will search for a specified topic.

If more than one topic is specified, a search is made until
each subtopic is found.  If no topics are specified, then the
next available topic is displayed.  For a summary of topics,
type HELP TOPICS.


.CONT
EXAMPLE 1:

     HELP HLP_CMD EXAMPLE

The help file is opened.  A search is made for the topic
HLP_CMD, and then for the subtopic EXAMPLE.  If found, the
subtopic EXAMPLE is displayed.


.CONT
EXAMPLE 2:

     HELP HLP

If a topic is less than 5 characters, HELP will search for the
first topic whose beginning characters match it.  In our case,
the subject topic is HLP.  A search is made of any topic whose
first characters match HLP.

Having found HLP, suppose we want to see the HLP EXAMPLE.  We
can type:

     ?EXAMPLE

? can be used instead of HELP.  It merely indicates that the
help file need not be closed, and the topic search need not
start from the beginning of the help file.


.L 1 HLP_CMD


SYNTAX:  HLP [filespec]

PARAMETERS:
filespec       -    any DOS path\filename.ext

DESCRIPTION:  Sets the HELP file name.  If no file is
specified, the current file is displayed.  This command is
commonly used to allow the HELP file to be stored on a
memory disk.  The default is DVER.HLP.


.L 1 IN_CMD


SYNTAX:  IN [filespec]

PARAMETERS:
filespec       -    any DOS path\filename.ext

DESCRIPTION:  Sets the input file parameter.  This command
specifies the dVERSION source file.  Wildcards "*" and "?" are
allowed.  If no filespec is specified, the current input file
is displayed.


.L 1 LIST_CMD


SYNTAX:  LIST [flag or port]

PARAMETERS:
flag           -    optional, ON or OFF
port           -    any printer port (LPT1, COM1, etc.)

DESCRIPTION:  Sets the option to send all input/include files
to the printer.  If no option is specified, the current flag is
displayed.  If the current flag is on, the port is displayed.
Specifying a port sets the flag to ON.  The default flag is OFF.


.L 1 OUT_CMD


SYNTAX:  OUT [filespec]

PARAMETERS:
filespec       -    any DOS path\filename.ext

DESCRIPTION:  Sets the output file parameter.  This command
specifies the output file.  If no filespec is specified,
the current output file is displayed.  If no file extension is
specified, the last known extension is assumed.  The default
output file is "*.PRG".

Note:  If the IN command has a wildcard, the OUT command's
filename is ignored (path and file extension are still used).


.L 1 PAR_CMD


SYNTAX:  PAR [word or number]

PARAMETERS:
word           -    any valid dBASE variable
number         -    number of leading spaces

DESCRIPTION:  Adds word to a list of conditional translating
parameters.  All code specified as conditional upon word will
be translated.  If no parameter is specified, all parameters
currently in the list are displayed.

If a number is specified, leading spaces will be removed from
every statement within each conditional.

Note: See Conditional Translating in the dVERSION manual.


.L 1 PARMS_CMD


SYNTAX:  PARMS filespec

PARAMETERS:
filespec       -    any DOS path\filename.ext

DESCRIPTION:  This command specifies the parameter file.  The
parameter file may contain any valid dVERSION command.  Upon
executing this command, the parameter file is read and each
dVERSION command is executed.

Note:  Any Leading prompt character is ignored.  See PMT_CMD.


.L 1 PMT_CMD


SYNTAX:  PMT <char>

PARAMETERS:
<char>         -    optional, a non alphanumeric character

DESCRIPTION:  This command sets the prompt character, recognized
in source code, as a dVERSION command.  If no character is specified,
the current prompt character is displayed.  The default is a ".".

Note:  Whatever prompt character you choose, make sure it's the
same prompt character used throughout your source code.


.L 1 QUIT_CMD


SYNTAX:  QUIT

PARAMETERS:  none

DESCRIPTION:  Specifies program exit.  The user is returned to DOS.


.L 1 REM_CMD


SYNTAX:  REM [flag]

PARAMETERS:
flag           -    optional, ON or OFF

DESCRIPTION:  Sets the option to remove all records from
output code that begin with the remark character "*".  If no
command is specified, the current flag is displayed.  The
default for flag is OFF.

Note:  Remarks that start with "&&" or "NOTE" are not removed.


.L 1 REMOVE_CMD


SYNTAX:  REMOVE [flag]

PARAMETERS:
flag           -    optional, ON or OFF

DESCRIPTION:  Sets the option to remove all trace of parameters,
specified by the PAR command, in output code.  When set to ON, all
parameters not specified by the PAR command will remain in the
output code.  If no command is specified, the current flag is
displayed.  The default for flag is OFF.

Note:  This command allows you to remove parameters, creating a
       fresh set of dVERSION source code.  dVERSION include files,
       therefore, are ignored.


.L 1 RUN_CMD


SYNTAX:  RUN

PARAMETERS:  none

DESCRIPTION:  This command merely begins execution.  This
program will read the input file(s), specified by IN, and will
create the output file(s), specified by OUT.


.L 1 SUF_CMD


SYNTAX:  SUF <char>

PARAMETERS:
<char>         -    optional, a non alphanumeric character

DESCRIPTION:  This command sets the ASCII value for the
dVERSION reserved word suffix.  If no character is specified,
the current suffix character is displayed.  The default is "\".

Note:  Whatever suffix character you choose, make sure it's the
same suffix character used throughout your source code.


.L 1 SYSTEM_CMD


SYNTAX:  SYSTEM expression

PARAMETERS:
expression     -    any DOS command

DESCRIPTION:  Allows user access to DOS.  If no expression is
specified, the current directory is displayed.

Note:  The expression parameter may or may not work for your DOS
If it does not work, the expression parameter will be ignored.


.L 1 ERRORS


The following is a brief description of dVERSION errors:

** Invalid Command
     Either the command was not found, or the command was
     incorrectly typed.  Check your spelling, and retype.

** Topic Not Found

** End of Topic (or Subtopic)
     Merely indicates that the HELP utility found all the
     information it can on a given topic.

** File Name Conflict
     dVERSION cannot continue runtime execution until the IN and
     the OUT commands are correctly specified.  IN also cannot
     equal OUT.

** INCLUDE filespec cannot be opened
     The maximum of 15 files have been opened at one time.

** Device not available, Error#25
     Printer is not online.

** File Not Found, Error#53

** Bad File Name, Error#64

** Syntax Error, Error#

** Disk Error, Error#
     Refer to your Disk owners manual, or to your quick
     basic reference guide.


.L 1 SAMPLE

The following is a sample run and the resulting code:

DVER                "Check Manual for correct syntax"
IN SAMP.VER
OUT SAMP.PRG
PAR 2
PAR ISSUE
RUN
QUIT


.CONT
dVERSION Reference Listing for SAMP.VER
Created at 03:39:18 on 03-07-1993
 
 
** ' 02/04/89 ISSUE
** ' 02/04/89 UNITMS
  IF\ .NOT. ISSUE
    *COMMENT
  END\
  IF\ ISSUE
    *COMMENT2
  END\
  IF\ UNITMS
    *COMMENT3
  END\
  IF\ .NOT. UNITMS
    *COMMENT4
  END\
  IF\ ISSUE, UNITMS
    *COMMENT5
  END\
  IF\ .NOT. ISSUE, UNITMS
    *COMMENT6
  END\
  IF\ ISSUE
    *COMMENT7
    IF\ UNITMS
      *COMMENT8
    END\
  END\


dVERSION Reference Listing for SAMP.PRG
 
 
** ' 02/04/89 ISSUE
** ' 02/04/89 UNITMS
*COMMENT2
*COMMENT4
*COMMENT5
*COMMENT7

